The internet is a communication system that interconnects the world. The internet has been structured to provide connectivity to billions of users with laptops, notebooks, desktops, TV set, cellular phones, smartphones like the iPhone™, Android™ and Blackberry™, and tablets. The internet 1-3 connects a client device 1-2 to a server 1-4 and the server to the same client device as illustrated in 1-1 of FIG. 1A or to another client (not illustrated). The client 1-2 can have at least one display screen 1-8 that can be a touch sensitive screen, pen based or both. The screen can display various icons or be attached to a physical keypad 1-9. As illustrated in 1-1 some of the Client Devices can be mobile units such as cellular phones and smartphones, wearable devices, tablets, laptops, desktops and Internet-enabled TV sets. The Client Devices are physical and can be either mobile (cellular phones, smartphones, wearable devices, and tablets) or non-mobile (laptops, desktops, and TV sets), and coupled to the internet by wired (a physical interconnect), wirelessly (waves through space), or both wired/wireless networks. The wireless connectivity can be cellular (3G, 4G, etc.), Wi-Fi, Bluetooth, WiMax, etc. The Client Device 1-2 has the Application Client which is the actual application software running on device.
The Cloud uses the network of the internet to offer services to users by using a combination of hardware and software embedded in the network. For example, Adobe™ and Microsoft™ offer the ability of using their software programs via the Cloud, while other companies offer storage capabilities via the Cloud to their customers. An Application Client can be in the Cloud, but in this case the Client Device is a “virtual” Client Device. The “virtual” Client Device has a way to provide access to the Application Client running in the cloud via a physical Client Device. For example, as in the example listed in 1-5 of FIG. 1B, a web browser 1-6 running on the physical Client Device 1-2 and coupled to the client/server 1-7 in the Cloud via the Internet accesses the Application Client running in the Cloud, which performs the actual application software. For the Cloud, there are two cases: the entire Application Client runs in the Cloud, or a small portion of the Application Client runs on a physical Client Device while most of the logic runs in the Cloud.
FIG. 2A illustrates a system 2-1 with the hardware 2-16 and software 2-15 of a Client Device 1-2. The Client Device 1-2 is coupled to the internet 1-3 via wireline connection or Radio Frequency (RF) wireless transmission network (wired/wireless) 2-2 and further coupled to a bank of servers 2-4 via a second interconnection 2-3 that can be wired or wireless. The communication link is a receiver and a transmitter known as a transceiver and is coupled to either a wired connector or an antenna (not illustrated) for the wireline connection or RF wireless transmission network, respectively. In general, these links: wired, wireless, cellular, internet, etc. are called the Communication network. The Communication network couples all components together. The server's bank 2-4 comprises server-0 2-11 to server-N 2-12. The bank contains at least one server and these servers can be localized, coupled by an Intranet, or be physically separated from one another, coupled by the Internet. The operating system (OS) 2-13 is closely coupled with the hardware 2-16, especially in case of Mobile Client Devices 1-2. The hardware 2-16 comprises a processor 2-5 operating under the operating system 2-13. The processor 2-5 is coupled to the memory 2-7 and communication link 2-9 via the bus 2-8. The communication link 2-9 couples the Client Device to the outside world through a wired and/or wireless interconnection via the transceiver. One mode of input to the Client Device 1-2 is via the touch based keypad 2-6 or through voice control (not illustrated). Other hardware components such as memory, power supplies, etc. are not mentioned but as well-known by those skilled in the art. The screen 2-10 can provide an output response or sound can provide a second mode of output known as voice output (not illustrated). The screen 2-10 can be a touch sensitive screen and provide a second mode of input. A set of applications or Application Clients 2-14 are coupled to the operating system 2-13. The Client Device is one of a plurality of Client Devices coupled to the Internet.
FIG. 2B illustrates that when the term server 2-20 is used, this server is a sub-set representation of a Computer hardware 2-17, which can contain software 2-18, a database 2-19 and the server 2-20 itself. Other components not illustrated are the memory, power supply, etc. One skilled in the art would know the other components contained in this device and will not be described further. All servers used in this specification are substantially the same as the server 2-20. Furthermore, a plurality of Servers and a plurality of Databases can be embedded in the Computer hardware 2-17.
The term “Application Client” refers to the portion of the application running on the Client Device. Although “Mobile Application” is synonymous with “Application Client,” the term “Application Client” encompasses the Application Client running on a mobile device, a non-mobile device or even in the Cloud. The Cloud can run a portion of the Application Client in the server while the remaining portion of the Application Client can run on the client, simultaneously. In this regard, the server becomes a client/server system within the network.
An approval process in the Application Store is illustrated in FIG. 3. A client 1-2 desires a particular application 3-1. The application 3-1 is submitted 3-2 to the Application Store for an approval process 3-3. If accepted 3-4, information is passed to the Application Store 3-5 to allow the application (APP) to be downloaded 3-6 into the client 1-2. The client now contains a “native” application coupled to the operating system 2-13 (see FIG. 2A) of the Client Device which was provided by the Application Store 3-5. The Native Mobile Application Client executable depends on the operating system (OS) as an iPhone would require a different executable than an Android™ phone.
FIG. 4 presents two different layered stacks of the hardware/software representation for a Client Device. The iPhone, Android or Blackberry phone stack 4-2, for example, consists of hardware 2-16, Operating System (OS) 2-13 and the Native Application Client 4-5. The Native Application Client is currently unalterable. Once the application is downloaded and if the user of the Client Device 1-2 desires a feature change in the Native Application Client, the user must go back to the application store (see 3-5 in FIG. 3) and download an updated version of the application that has this change implemented. This can take a significant amount of time to get the new Native Application Client since the updated application needs to be developed, re-submitted to the application store, and re-approved by the application store. The application store expends funds to re-approve the new executable and the approval process may take considerable time. Once accepted, the store must distribute the new Native Application Client to the Client Device. The second layered stack 4-3 comprises a non-Native Application Client 4-1 which has an executable based on a programming language that is understood by a web browser running on the Client Device. The most common example of such a language is HTML5. The application client written in HTML5 does not depend on the OS 2-13 but instead runs on the browser 4-4 of the Client Device 1-2. The browser 4-4 may depend on the Client Device 1-2, but the non-Native Application Client 4-1 does not depend on the Client Device 1-2.